<html>
<head> <title> M3uPlayer Users Guide </title>
</head>
<body>
<h1> M3uPlayer Users Guide </h1>
<ul>
<li> <a href="#buttons">Description of Buttons</a> </li>
<li> <a href="#about">About the program</a></li>

<h3> Introduction</h3>
<p> Music Player and Podcast Grabber. Touchpad and small-screen friendly.</p>

<p> This program was written primarily for the Nokia N8 (Symbian^3), although it also works on Linux, Windows XP/7, and Meego. It demonstrates how to do C++/QML integration with Qt's QAbstractItemModel. </p>

<p> Here is a list of the features offered by this player that were not offered by the original built-in player on Nokia N8: </p>

<ol>
<li> Plays M3u playlists. (Still not completely fixed in Symbian Belle's Music Player) </li>
<li> Sorts playlists by modified date or id3 tags. </li>
<li> Any folder can be a playlist (add as a "tracks dir"). </li>
<li> Subscribes, Downloads podcasts. Resumes failed downloads.  </li>
<li> Can play from or add to play queue while switching playlists/downloading. </li>
</ol>

<p> You must specify locations of tracks, playlists, and podcast downloads. The program will ask you for them as needed, or you can add/set them from the options menu. </p>
<p> This program does not use the document gallery API (yet) to find tracks on your system. </p>


<p> There are 3 main "views". On the left, is the <b>Now Playing</b> view. In the center is the <b>Parent List</b> view, and the right is the <b>Episodes View</b>. Choosing an item from the drop down menu  will populate the  <b>Parent List</b> with your choices. Choosing <b>Playlists</b>, <b>Song Folders</b> or <b>Podcasts</b> will populate the <b>Now Playing</b> view with its contents. Choosing <b>Subscriptions</b> will populate the right-hand <b>Episodes View</b> with your choices. You can go back to the parent list with a horizontal flick, or by drop-down menu. </p>

<a name="buttons"> <h2> Description of Buttons </h2> </a>

<ul>
<li> <img src="icons/bottom.png" alt="Menu"> Menu Button - Toggles display of drop-down menu </li>
<li> <img src="icons/enqueue.png" alt="Enqueue"> Enqueue Button - adds a track to play queue </li>
<li> <img src="icons/dequeue.png" alt="Dequeue"> Dequeue Button - Removes track from play queue </li>
<li> <img src="icons/playlist.png" alt="Playlist"> Playlist Button - When visible, toggles display between <b>Play Queue</b> and <b>Now Playing</b> lists. When playing tracks form the queue, you might find that when you open a playlist or song folder, the queue will be shown right after. This is because it is "now playing". You can click on this to switch back to a playlist or folder you chose previously from the parent list view. </li>
<li> <img src="icons/delete.png" alt="Delete"> Delete Button - Deletes track from disk (asks for confirmation first). </li>
<li> <img height="50" width="50" src="icons/rss.png" alt="Subscribe"> Subscribe to podcast. Not fun to type in URLs with the phone. It's better to edit the <tt>subscribed.tsv</tt> file manually in an editor.  </li>
<li> <img src="icons/sort.png" alt="Sort"> Sort Button - to change the order of tracks in current playlist. </li>
<li> <img src="icons/download.png" alt="Download"> Download Episode Button - requires internet connection. </li>
<li> <img src="icons/cancel.png" alt="Cancel"> Cancel Download Button </li>
<li> <img src="icons/reload.png" alt="Reload"> Reload Button - to reload current playlist or directory, or retry an aborted download. </li>
</ul>
<a name="about"><h2> About the Program </h2> </a>
The views are all done in flickable QML, with animations.
You can use horizontal flicks to switch between playlists, tracks and subscriptions.
You can use vertical flicks to go up and down the lists.
<p>
On the Nokia N8, you can use volume buttons on the phone as well as media buttons on the headset.
<p>
If you are playing songs from the queue, then you can navigate to other places without interrupting playback, to queue tracks from different sources.
<p>
The data are all populated from C++.
Uses QNetworkAccessManager to download podcasts.
Uses QXmlStreamReader to parse XML rss feeds.
<p>
It looks for a .tsv file in your podcast directory and uses that as a list
of podcast subscriptions. The name of the podcast must come after the url and
a \t (tab) on the same line. It uses that name for the download folder.
<p>
See <a href="subscribed.tsv">subscribed.tsv</a> for an example subscriptions file. </p>
<p> See <a href="README.txt">README.txt</a> for build instructions. </p>
</body>
